Method and apparatus for storing activation data in a cellular telephone

ABSTRACT

A method and apparatus for programming a cellular telephone with activation parameters. A cellular telephone to be programmed is connected to a computer via a communications interface. A user input device is provided to allow a user to provide programming information, including a cellular telephone type, to the computer. A visual representation of the cellular telephone type is displayed on a display monitor to allow the user to interactively verify the inputted programming information. Upon such user verification, the computer determines activation parameters and transmits the activation parameters to the cellular telephone. In accordance with another aspect of the invention, certain activation parameters are dynamically computed based on the user provided programming information. In one embodiment, the user enters a cellular telephone number to be assigned to the cellular telephone. The computer looks up a system identification associated with the cellular telephone number in a memory unit. Certain activation parameters are dynamically computed based on the cellular telephone number and system identification.

This is a continuation of application Ser. No. 11/842,283 filed Aug. 21,2007, now U.S. Pat. No. 7,536,174 which is a continuation of applicationSer. No. 10/805,247 filed Mar. 22, 2004, U.S. Pat. No. 7,260,381, whichis a continuation of application Ser. No. 09/924,613, filed Aug. 9,2001, U.S. Pat. No. 6,748,209, which is a continuation of applicationSer. No. 09/219,872, filed Dec. 24, 1998, U.S. Pat. No. 6,650,893, whichis a continuation of application Ser. No. 08/901,827, filed Jul. 28,1997, U.S. Pat. 5,974,311, which is a continuation of application Ser.No. 08/550,274, filed Oct. 30, 1995 (abandoned).

FIELD OF THE INVENTION

The present invention relates generally to the programming of cellulartelephones. More particularly, the present invention relates to theautomated programming of a cellular telephone.

BACKGROUND OF THE INVENTION

Cellular telephones are becoming increasingly popular. In the past, thesale of cellular telephones was limited to specialized cellulartelephone dealers. Today, due to the increased popularity of cellulartelephones, such telephones may be purchased from a variety ofretailers, including electronic specialty stores, electronic chainstores, department stores, and cellular service provider retail outlets.Upon the purchase of a cellular telephone, the telephone must beactivated before it can be used with a particular cellular serviceprovider in a geographic location. Such activation generally requiresthe programming (i.e. storing) of activation parameters into the memoryof the cellular telephone.

The cellular telephone memory which stores the activation parameters iscalled a Number Assignment Module (NAM), and the data which is stored inthe NAM is called NAM parameters. Such NAM parameters include thetelephone number associated with the cellular telephone and anidentification of the cellular service provider which will provide thecellular telephone service associated with that telephone. There areother NAM parameters which must be programmed in order to activate thetelephone. These parameters will be discussed in more detail below inthe detailed description.

The programming of NAM parameters is a time consuming and error proneprocess. Each manufacturer's telephone(s) has different programmingrequirements and procedures. As a result, point-of-sale personnel musthave access to large amounts of programming reference material for eachof the different types of phones. The actual programming is generallydone through the cellular telephone keypad. The first step in theprogramming is to enter a programming code into the keypad which willinstruct the telephone to enter a programming mode. Once in theprogramming mode, each of the NAM parameters is entered through thekeypad. Such keypad programming is prone to errors and a small mistakein programming renders the phone unusable until correctly programmed.

The complexity of NAM parameter programming has made the sale ofcellular telephones less profitable for retail stores which do notspecialize in such sales, because point of sale personnel must betrained to program the cellular telephones. In addition to the trainingexpense, such sales personnel must dedicate a substantial amount of timein programming the phones, time which could be otherwise spent withcustomers in the sale of new phones. In addition, programming byinexperienced sales personnel often results in an incorrectly programmedtelephone. In many instances, such incorrect programming is notdiscovered until the customer has left the store and has attempted touse the telephone. As a result, the customer must return to the store tohave the phone reprogrammed. This results in both more time required bysales personnel, and reduced customer satisfaction.

U.S. Pat. No. 5,386,455 entitled System and Method for AutomaticActivation of Cellular Telephones discloses a system for programming NAMparameters in a cellular telephone. In accordance with the techniquedescribed therein, a local computer is connected to both a cellulartelephone and an authorizing computer of a selected cellular carrier.User information, such as credit information, is manually entered intothe local computer. The local computer interrogates the cellulartelephone to determine certain data stored in the cellular telephone.The user information and cellular telephone data is sent to theauthorizing computer of the selected cellular carrier via a modem. Uponapproval by the local carrier, the authorizing computer sends to thelocal computer the data required for programming the cellular telephone.Upon receipt of the data, the local computer programs the cellulartelephone with the received data. Thus, in accordance with thistechnique, the activation data to be stored in the cellular telephone isnot stored or computed locally in the local computer, but is stored at aremote authorizing computer, and the data must be transferred from theremote authorizing computer to the local computer prior to programmingthe cellular telephone. In addition, there is no disclosure of userinteraction with the programming function apart from the entering ofuser information.

UK Patent Application GB 2256113-A, entitled “Programming A CellularRadio Telephone” also discloses a system and method for programmingactivation data into a cellular telephone. The system includes a remotecomputer which is coupled to an acoustic converting device (e.g. anacoustic coupler) thus providing communication between the cellulartelephone and the remote computer. The preferred embodiment shows thelink between the computer and the acoustic converting device being anetwork (i.e. telephone network). In operation, the computer ascertainsthe type, serial number, and other basic data from the telephone, andusing this data, selects the appropriate set-up data for the telephonefrom a stored table. The data is then sent to the mobile telephone viathe link and the acoustic converting device. There is no interactivecommunication between a user and the remote computer which controls theprogramming.

SUMMARY OF THE INVENTION

In accordance with the present invention, a method and apparatus forstoring activation parameters in a cellular telephone is provided. Acellular telephone to be programmed is connected to a local computer.The computer includes a user input device which allows a user to inputprogramming information, including the cellular telephone type, to thecomputer. Upon the receipt of the user programming information, a visualrepresentation of the user inputted cellular telephone type is displayedon a display screen to allow the user to interactively verify theinputted programming information. Upon user verification of theprogramming information, the computer determines appropriate activationparameters based on the inputted programming information, and transmitsthe activation parameters to the telephone for storage in the cellulartelephone memory.

In accordance with another aspect of the invention, certain activationparameters are neither stored in the computer memory, nor are theysupplied by the user, but instead they are computed dynamically by thecomputer based on the user inputted programming information. In oneembodiment, the user inputted programming information includes acellular telephone number to be assigned to the telephone. The computerretrieves from memory a stored system identification which is associatedwith the area code and prefix of the user inputted cellular telephonenumber. Certain activation parameters are dynamically computed based onthe cellular telephone number and the system identification.

Thus, in accordance with the present invention, a method and apparatusfor programming a cellular telephone is provided with a level of userinteraction which provides advantages over the prior systems. The usermay interactively verify inputted programming information prior to anattempt to store activation parameters in the cellular telephone. Inaddition, computer memory requirements are reduced by dynamicallycomputing certain activation parameters, thus saving the memory spacewhich otherwise would be taken up by stored activation parameters. Theseadvantages are provided in a method and apparatus which may beimplemented on a computer system which is local to the cellulartelephone programming location.

These and other advantages of the invention will be apparent to those ofordinary skill in the art by reference to the following detaileddescription and the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a block diagram of an apparatus for programming a cellulartelephone in accordance with the present invention.

FIG. 2 shows an example of a system identification data table.

FIGS. 3A and 3B show a flowchart of the steps for programming a cellulartelephone in accordance with the present invention.

FIG. 4 illustrates an example user interface which is displayed to auser in accordance with the present invention.

DETAILED DESCRIPTION

FIG. 1 shows a block diagram of an apparatus for programming a cellulartelephone in accordance with the present invention. Computer 102 isshown, which in an advantageous embodiment is a personal computer of thetype which is well known in the art. The overall functioning of thecomputer 102 is controlled by a central processing unit (CPU) 104executing computer program instructions. CPU 104 is connected to amemory unit 106 which contains the computer program instructions whichare executed by the CPU 104. In addition, memory unit may contain data,other than computer program instructions, which is accessed by CPU 104during execution of the program instructions. Memory unit 106 may be anytype of machine readable storage device. For example, memory unit 106may be a random access memory (RAM), a read only memory (ROM), aprogrammable read only memory (PROM), an erasable programmable read onlymemory (EPROM), an electronically erasable programmable read only memory(EEPROM), a magnetic storage media (i.e. a magnetic disk), or an opticalstorage media (i.e. a CD-ROM). Further, the computer 102 may containvarious combinations of machine readable storage devices, which areaccessible by the CPU 104, and which are capable of storing acombination of computer program code and data. CPU 104 is also connectedto a textual input device 108, such as a keyboard, and a graphical inputdevice 112, such as a mouse. Such user input and output devices are wellknown in the art and will not be discussed in further detail herein. CPU102 is also connected to a display monitor 110, which displaysinformation to a user. In addition, CPU 104 is connected to a data I/Oport 114 which allows the computer 102 to communicate with externaldevices. In accordance with an advantageous embodiment, the data I/Oport 114 is a serial data port.

The computer 102 is connected to a serial interface 150 via a cable 135which connects the serial port 114 of the computer 102 to the serialinterface 150. The serial interface 150 is connected to a data interfaceport 162 of a cellular telephone 160, via cable 155. Cellular telephone160 is of the type which contains a microprocessor which controls thefunctioning of the cellular telephone 160. The data interface port 162allows the microprocessor of the cellular telephone 160 to communicatewith external devices. Thus, cable 135, serial interface 150, and cable155 allow the computer 102 to communicate with the cellular telephone160. The cellular telephone 160 may be one of a variety of telephonessold by various manufacturers. For example, cellular telephones whichmay be programmed by the present invention are made by, Motorola, Nokia,AT&T, Ericsson, Oki, and others. Each of these telephones may require asomewhat different interface in order to connect the serial port 114 ofthe computer 120 to the data interface port 162 of the cellulartelephone 160. As a result, the details for the cable 135, serialinterface 150, and cable 155 will vary depending on the type of cellulartelephone 160 being programmed. The appropriate connecting cables,interfaces, and adapters are available from the cellular telephonemanufacturers, and will not be described in further detail herein.

It is noted that if the computer 120 has a single serial port 114, thenthe interface hardware for connecting to the cellular telephone 160 mayneed to be swapped when different types of cellular telephones are to beprogrammed. If computer 120 has multiple serial ports, then thedifferent interface hardware required for different telephone types maybe connected to the multiple serial ports. In this configuration, theCPU under control of the computer program instructions may select theappropriate serial port to be active based on the cellular telephonetype entered by the user. Various interface configurations may beimplemented by one skilled in the art.

The cellular telephone 160 is of the type which contains a NumberAssignment Module (NAM) which stores data required for the operation ofthe cellular telephone 160 under control of the telephone'smicroprocessor. As described above, a cellular telephone must beactivated prior to use. Such activation requires the storing of certainparameters in the NAM. The most common NAM parameters, along withexemplary data, are shown below in Table 1.

TABLE 1 DESCRIPTION DATA PHONE NUMBER (MIN) 407-346-1111 SYSTEMIDENTIFICATION (SID) 00037 ACCESS OVERLOAD CLASS 01 GROUP ID MARK 10INITIAL PAGING CHANNEL 333 SECONDARY PAGING CHANNEL 708 WAKE UP MESSAGEAT&T WIRELESS SERVICES LOCK CODE 1111

The phone number (i.e. MIN), is the telephone number which is to beassociated with the cellular telephone 106. In accordance withconvention practices, a cellular service provider will be supplied witha plurality of telephone numbers from the local telephone company in aparticular geographic location. These telephone numbers are thenassigned to various cellular telephones, such as cellular telephone 160,when the telephone is purchased. In the present example, assume that thecellular service provider was assigned the telephone number407-346-1111, and that this is the telephone number which is to beassigned to the cellular telephone 160.

The second NAM parameter is the system identification (i.e. SID). Thesystem identification identifies the cellular service provider whichwill provide cellular service to the cellular telephone 160. Since theremay be more than one cellular service provider in a given geographiclocation, this parameter identifies the system with which the cellulartelephone 160 will communicate. In accordance with one aspect of theinvention, a system identification data table is stored in memory 160and is used to determine the appropriate system identification to beassigned to the telephone 160. This determination is based upon thetelephone number assigned to the telephone 160.

An exemplary system identification data table 200 is shown in FIG. 2.The table 200 associates a system identification 220 and location 230with a given area code+prefix combination 210. Thus, given an assignedtelephone number, the system can determine the appropriate system ID. Inthe presently described embodiment, all telephones to be programmed areto use the same cellular service provider, and therefore, only onesystem ID 220 is required for each area code+prefix pair 210. In thisembodiment, the system IDs 220 are those that are assigned to the singlecellular service provider in each of the locations 230 shown in FIG. 2.

As described above, the computer 102 operates according to storedcomputer program instructions (i.e. control program) to carry out thefunctions of the present invention. A flowchart of the steps to becarried out by the computer 102 as defined by the control program isshown in FIGS. 3A and 3B. An example of the user interface 400 which ispresented to the user on display monitor 110 is shown in FIG. 4.

The program is initiated in step 300. In step 302 the cellular telephonetype is requested from the user. The cellular telephone type identifiesthe manufacturer of the telephone, and the particular model of thetelephone. As shown in FIG. 4, the user enters the telephone type inarea 404 of the user interface using the graphical input device 112and/or the textual input device 108. The user may be provided with amenu of telephone types from which one type may be chosen using thegraphical input device 112, or the user may enter a telephone type usingthe textual input device 114. Such various means for receiving userinput from a user interface are well known in the art and will not bedescribed further herein. Assume for the purposes of this example, thatthe user has entered “AT&T 3810” in area 404 to indicate the type ofcellular telephone 160 being programmed. In step 304 a picture of thetelephone selected by the user in step 306 is displayed in area 408 ofthe user interface 400. A set of telephone image files which representgraphical images of the different telephone types which may beprogrammed with the system are stored in the memory 106. When the userselects a telephone type in step 306 the appropriate graphics file isaccessed and the image of the selected telephone is presented to theuser. In one embodiment, these graphics files are stored as bitmap(.BMP) files, in a manner which is well known in the art of computergraphics.

At this point, the user can verify that an image of the cellulartelephone 160 which is to be programmed is displayed in area 408 of theuse interface 400. If the image in area 408 does not match that of thecellular telephone 160 to be programmed, the user may re-enter the phonetype in area 404 of the display screen 104. In response, the system willdisplay an image of the newly entered telephone type. Thus, the displayof an image of the telephone type provides a verification mechanism sothat the user can verify that the telephone type entered in step 302corresponds to the cellular telephone 160 which is to be programmed.Such verification takes place prior to any attempt to store data in theNAM of the cellular telephone 160. In accordance with the interactiveverification feature of the invention, the display monitor 110 islocated proximate to the input devices 108 and 112, such that the usermay verify the input by viewing the information displayed on the displaymonitor 110.

In step 306, instructions for the selected telephone type are displayedin area 406 of the user interface 400. As shown in FIG. 4, theseinstructions set forth the next steps to be taken by the user in orderto program the cellular telephone. In step 308, the user enters thecellular telephone number in area 402 of the user interface 400. Asdescribed above, a cellular provider is supplied with a plurality oftelephone numbers from a local telephone company. In the embodimentdescribed herein, the list of such phone numbers is external to thecomputer, and the phone number to be assigned to the cellular telephoneis chosen from the external list and is provided to the computer as userinput. In an alternate embodiment, the list of phone numbers is storedin the memory of the computer and the particular telephone number to beassigned to the cellular telephone is chosen from the stored list. Insuch an embodiment, a user may enter an area code and prefixcombination, and an appropriate telephone number having such an areacode and prefix combination would be selected and used to program thetelephone.

In step 310, the user initiates the programming of the cellulartelephone 160 by pointing and clicking on a program icon 410 using thegraphical input device 112. Thus, the programming of the cellulartelephone is only initiated upon an action by the user after the userhas verified the user supplied input data. In an alternate embodiment,the user could be provided with an abort icon to stop the programming ofthe cellular telephone. In such an embodiment, the programming of thetelephone would occur unless the user aborts the programming. In thisembodiment, the user verifies the input data by not clicking on theabort icon.

In step 312, the system identification is looked up in the systemidentification table 200 (FIG. 2). The area code+prefix combinationentered by the user in area 402 is (407)-346. This corresponds withentry 240 in the system identification table 200, which indicates thatthe system ID is 00037, and that the location is West Palm Beach, Fla.In step 314, the system ID and location are displayed in areas 412 and414 respectively, in the user interface 400. In step 316 the electronicserial number (ESN) is read from the telephone. The ESN is displayed inarea 416 of the user interface 400 in step 318. In step 320 the softwareversion of the telephone firmware is read from the telephone. Thesoftware version is displayed in area 418 of the user interface 400 instep 322. The steps of reading and displaying the software version ofthe cellular telephone firmware is useful in the event that a morerecent version of the software has been released. The control programcould check for such an occurrence and provide the user with a messageto the effect that a software upgrade may be appropriate. It is notedthat steps 316 through 322 are optional and provide additionalinformation to the user. One skilled in the art would recognize thatother optional information could also be provided to the user.

In step 324 the remaining NAM parameters are calculated. Certainremaining NAM parameters are computed according to NAM parameterderivation rules, as described below. Certain other NAM parameters arepredetermined and may be hard-coded into the control program orotherwise stored in memory. It is noted that the below described NAMparameters are well known to those skilled in the art of cellulartelephone systems. As such, only a brief description of each of theparameters will be given here. The access overload class controls thetelephone's access to the cellular system when the system is overloaded,and is generally derived as 0+the last digit of the MIN. Thus, in thepresent example, the access overload class is “01”. The Group Id Markcan be used to define groupings of cellular systems. Generally, theGroup Id Mark is set to 10. The Initial Paging Channel is the primarydedicated control channel. Control channels may vary depending on thecellular service provider. Thus, the control channel is computed basedupon the system identification parameter. In the present embodiment, theInitial Paging Channel is set to 333 if the system identification isodd, and to 334 if the system identification is even. In the presentexample, the Initial Paging Channel is 333. The Secondary Paging Channelis the secondary dedicated control channel. In the present embodiment,the Secondary Paging Channel is set to 708 if the system identificationis odd, and to 737 if the system identification is even. In the presentexample, the Secondary Paging Channel is 708. The Wake Up Message is themessage which appears on the telephone when the telephone is powered on.In the present example, the Wake Up Message is “AT&T WIRELESS SERVICES”.The Lock Code is a code which enables or disables use of the telephone,and is generally derived as the last 3 or 4 digits of the MIN. In thepresent example, the Lock Code is the last 4 digits of the MIN. Thus,the Lock Code is set to 1111.

It is noted that the telephone number (MIN) is the only NAM parameterwhich is supplied by the user, and that the system identification (SID)is the only NAM parameter which is stored in the system identificationdata table 200. The Group Id Mark and the Wake Up Message arepredetermined and are hard-coded into the control program or otherwisestored in memory. The remaining NAM parameters are computed dynamicallyas described above based on the MIN and SID. Thus, the dynamicallygenerated parameters are not stored in memory. They are derived from theMIN and SID in step 324 using the above described NAM parameterderivation rules. It is noted that the NAM parameter derivation rulesmay vary depending on particular embodiments of the invention. Theability to dynamically compute certain NAM parameters reduces the amountof information which must be stored in the computer memory.

In step 326, the NAM of cellular telephone 160 is programmed undercontrol of the computer 102. By sending the appropriate signals to thecellular telephone 160 via the serial interface 150 and cables 135 and155, the computer 102 first instructs the cellular telephone 160 toenter its programming mode. Then, the computer 120 sends the appropriateNAM parameters to the cellular telephone 160. Each manufacturer'stelephone may require different programming procedures, and suchprocedures are carried out by the computer under control of the controlprogram depending on the type of cellular telephone being programmed.One technique for programming the telephone is for the computer 102 tosend signals corresponding to keypad presses to the cellular telephone160. Using this technique, the cellular telephone 160 is programmed in amanner similar to the manner in which a person would program thetelephone using the keypad. The computer 102 sends a sequence ofsignals, corresponding to a sequence of keypad presses, to program thetelephone. Programming in this manner is faster and more accurate than aperson using the keypad to program the telephone.

Some types of telephones accept special instructions when the telephoneis being programmed through an external interface. In these types ofphones, the computer 102 sends special programming codes, along withprogramming data, to the cellular telephone 160, and the microprocessorin the cellular telephone interprets the codes and data and storesappropriate parameters in the NAM of the cellular telephone. Thus, theparticular mechanism for programming the telephone may vary withdifferent telephone types.

In step 328 the computer determines if the programming was successful.In the present embodiment, this is accomplished by determining if avalid ESN was read from the telephone in step 316. If the ESN which wasread from telephone is valid, then it is assumed that programming wassuccessful. In step 330, the status (i.e. successful or unsuccessful) ofthe programming is displayed on the user interface 400 at location 406.If the programming was unsuccessful, the user may review the userinterface 400 to determine where the problem may be, and may attempt toreprogram the telephone.

In step 332 a programming log is updated. A programming log is a filewhich is stored in memory 106 which records programming events. Anexample log entry for the example discussed above is as follows:

Quantity in series: 1 Mobile Number: (407) 346-1111 ESN: 15701146829Model: AT&T 3810 Version: Dec. 22, 1994 System ID: 00037 System IDMarket Name: West Palm Beach, Florida Software Version: v2.0 LocationIdentification: ABC Electronics Date: Sep. 21, 1995 Time: 8:52:26 AM

Each entry in the log describes a programming event. Most of the entrieshave been described above, and will not be described again here. The“Quantity in series” entry identifies the sequential number of thisentry in the programming log. The “Version” identifies the softwareversion of the telephone. The “Software Version” identifies the softwareversion of the control program. The “Location Identification” identifiesthe location at which the programming was carried out. The “Date” and“Time” identify the date and time of the programming. The system mayprovide users with the capability of archiving, editing, viewing,querying, and deleting log entries. Such file management techniques arewell known, and could be readily implemented by one skilled in the art.

In step 334, verification instructions are displayed in the userinterface in area 406. The verification instructions provide the userwith instructions on how to verify that the correct telephone number, aswell as other parameters, has been programmed into the cellulartelephone. Most telephones have a code which may be entered on thekeypad which will display the cellular telephone number, or otherprogrammed parameters, on the telephone display screen. These codes aredisplayed to the user so that the programming may be verified by theuser. In this way, the programming personnel can verify the NAMparameters without the need to remember, or look up, the verificationcodes for the particular telephone being programmed.

Other instructions, in addition to verification instructions, may alsobe provided to the user in area 406 of user interface 400. For example,the system may provide the user with instruction on how to system selectthe A (non-wireline) or B (wireline) side as the primary system for thetelephone. This is useful when the telephone will be operating in areasin which there is more than one cellular service provider, or if thetelephone will be operating in different areas with different cellularservice providers. The program ends in step 336.

The foregoing Detailed Description is to be understood as being inevery-respect illustrative and exemplary, but not restrictive, and thescope of the invention disclosed herein is not to be determined from theDetailed Description, but rather from the claims as interpretedaccording to the full breadth permitted by the patent laws. It is to beunderstood that the embodiments shown and described herein are onlyillustrative of the principles of the present invention and that variousmodifications may be implemented by those skilled in the art withoutdeparting from the scope and spirit of the invention.

1. An apparatus comprising: a processor; a memory coupled to theprocessor to store computer program instructions executable by theprocessor; and a communication interface to locally connect to acellular telephone; the computer program instructions to generate agraphical user interface to program the cellular telephone via thecommunication interface, the graphical user interface comprising a fieldto receive a user input value, the value being modifiable based on auser verification process, wherein in response to a first user inputvalue specifying a first cellular telephone type, the graphical userinterface is to display appropriate instructions for programming thefirst cellular telephone type and in response to a second user inputvalue replacing the first user input value to specify a second cellulartelephone type different from the first when the first telephone typedoes not match a telephone type of the cellular telephone, the graphicaluser interface to display appropriate instructions for programming thesecond cellular telephone type, wherein the processor calculates NumberAssignment Module (NAM) parameters and programs a NAM of the cellulartelephone according to the NAM parameters, the NAM parametersdynamically computed based upon a phone number selected for the cellulartelephone from a list of telephone numbers on the memory and a systemidentification (SID).
 2. The apparatus of claim 1, wherein in responseto the first user input specifying the first cellular telephone type,the graphical user interface is to display a first image correspondingto the first cellular telephone type, and in response to the second userinput value replacing the first user input value to specify the secondcellular telephone type different from the first, the graphical userinterface to display a second image different from the first image, thesecond corresponding to the second cellular telephone type.
 3. Theapparatus of claim 2, wherein the second cellular telephone type isverified before an attempt to store data in the NAM of the cellulartelephone.
 4. The apparatus of claim 3, wherein the verification occursunless the programming is aborted.
 5. The apparatus of claim 1, whereinthe programming of the cellular telephone is initiated by selecting aprogram icon using a graphical input device.
 6. The apparatus of claim1, wherein the graphical user interface further displays a softwareversion of firmware contained on the cellular telephone.
 7. Theapparatus of claim 6, wherein a software upgrade message is generated ifa more recent version of the firmware has been released.
 8. Theapparatus of claim 1, wherein the programming of the cellular telephoneis accomplished by sending a sequence of signals corresponding to asequence of keypad presses to the cellular telephone.
 9. The apparatusof claim 1, wherein the apparatus determines whether a valid electronicserial number can be read from the cellular telephone.
 10. The apparatusof claim 1, wherein a programming log is stored on the memory, theprogramming log recording a programming event.
 11. A method ofprogramming a cellular telephone, comprising: requesting a cellulartelephone type to be programmed; selecting a phone number from a list oftelephone numbers; assigning the phone number to the cellular telephoneto be programmed; receiving a first input cellular telephone type;displaying an image of the first input cellular telephone type;requesting a verification that the image of the first input cellulartelephone type displayed is the cellular telephone type to beprogrammed; displaying instructions for programming the first inputcellular telephone type; and calculating NAM parameters and programminga NAM of the cellular telephone to be programmed according to the NAMparameters, the NAM parameters dynamically computed based upon the phonenumber and a system identification (SID); wherein if the image of thefirst input cellular telephone type is not the cellular telephone typeto be programmed a second input cellular telephone type is received, animage of the second input cellular telephone type is displayed andverified, and instructions for programming the second input cellulartelephone type are displayed.
 12. The method of claim 11, furthercomprising updating a programming log with a programming eventcorresponding to programming the cellular telephone to be programmed.